import java.util.Arrays;

/**
 * 下一个排列
 */
public class Test31 {
    public static void main(String[] args) {
        int[] arr = {1,3,2};
        nextPermutation(arr);
        System.out.println("============");
    }
    public static void nextPermutation(int[] nums) {
        boolean flag = false;
        int i = nums.length-1;
        for(;i>=1;i--){
            if(nums[i] > nums[i-1]){
                int prev = i-1;
                int min = i;
                for(;i<nums.length;i++){
                    if(nums[i] > nums[prev] && nums[i] < nums[min]){
                        min = i;
                    }
                }
                int temp = nums[min];
                nums[min] = nums[prev];
                nums[prev] = temp;
                Arrays.sort(nums,prev+1,nums.length);
                flag = true;
                break;
            }
        }
        if(flag == false){
            Arrays.sort(nums);
        }
    }
}
